package com.hyt.it.ogt.kq.service.bm.model.dto;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.hyt.it.ogt.kq.common.bm.config.deserializable.DateDeserializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;


/**
 * 获取考生发布考试信息响应实体
 */
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Builder
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
@ApiModel(value = "ApiExamPublishInfoDTO对象", description = "获取考生发布考试信息响应实体")
public class ApiExamPublishInfoDTO {

    /**
     * 考试ID
     */
    @ApiModelProperty(value = "考试ID")
    private String id;

    /**
     * 考试名称
     */
    @ApiModelProperty(value = "考试名称")
    private String examName;


    /**
     * 开考开始日期
     */
    @ApiModelProperty(name = "考试开始日期")
    @JsonDeserialize(using = DateDeserializer.class)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date examStartDay;

    /**
     * 开考结束日期
     */
    @ApiModelProperty(value = "考试结束日期")
    @JsonDeserialize(using = DateDeserializer.class)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date examEndDay;

    /**
     * 准考证号
     */
    @ApiModelProperty(value = "准考证号")
    private String admissionNo;

    /**
     * 科目名称
     */
    @ApiModelProperty(value = "科目名称")
    private String subjectName;

    /**
     * 考试结果
     */
    @ApiModelProperty(value = "考试结果")
    private String examResult;

    /**
     * 考试成绩
     */
    @ApiModelProperty(value = "考试成绩")
    private BigDecimal resultScore;

    @ApiModelProperty(value = "复核状态(0未复核；1复核待回复；2,复核已回复)", example = "0")
    private Integer reviewStatus;
    
    @ApiModelProperty(value = "考生ID")
    private String examineeId;

    @ApiModelProperty(value = "发布状态(0:未发布;1:已发布)")
    private Boolean publishStatus;

    @ApiModelProperty(value = "显示试卷(0:不显示;1:显示)")
    private Boolean showPaperStatus;
}
